<!DOCTYPE html>
<html>
<head>
    <title>[title]</title>
</head>
<body>
    [content]
    <!--
        Additional languages to match rendered site in the MarkDown Editor VS plug-in preview window.
        Markdown editor uses prism.js but the site uses highlight.js so they aren't exactly the same
        but this helps in making the preview appear a little closer to the final form.
    -->
    <script>
        //<![CDATA[
        Prism.languages.llvm={
            comment:/^[ \t]*;.*$/m,
            string:{
                pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,
                greedy:!0
            },
            keyword:[
                /\b(begin|end|true|false|declare|define|global|constant|private|linker_private|internal|available_externally|linkonce|linkonce_odr|weak|weak_odr|appending|dllimport|dllexport|common|default|hidden|protected|extern_weak|external|thread_local|zeroinitializer|undef|null|to|tail|target|triple|datalayout|volatile|nuw|nsw|nnan|ninf|nsz|arcp|fast|exact|inbounds|align|addrspace|section|alias|module|asm|sideeffect|gc|dbg|linker_private_weak|attributes|blockaddress|initialexec|localdynamic|localexec|prefix|unnamed_addr|ccc|fastcc|coldcc|x86_stdcallcc|x86_fastcallcc|arm_apcscc|arm_aapcscc|arm_aapcs_vfpcc|ptx_device|ptx_kernel|intel_ocl_bicc|msp430_intrcc|spir_func|spir_kernel|x86_64_sysvcc|x86_64_win64cc|x86_thiscallcc|cc|c|signext|zeroext|inreg|sret|nounwind|noreturn|noalias|nocapture|byval|nest|readnone|readonly|inlinehint|noinline|alwaysinline|optsize|ssp|sspreq|noredzone|noimplicitfloat|naked|builtin|cold|nobuiltin|noduplicate|nonlazybind|optnone|returns_twice|sanitize_address|sanitize_memory|sanitize_thread|sspstrong|uwtable|returned|type|opaque|eq|ne|slt|sgt|sle|sge|ult|ugt|ule|uge|oeq|one|olt|ogt|ole|oge|ord|uno|ueq|une|x|acq_rel|acquire|alignstack|atomic|catch|cleanup|filter|inteldialect|max|min|monotonic|nand|personality|release|seq_cst|singlethread|umax|umin|unordered|xchg|add|fadd|sub|fsub|mul|fmul|udiv|sdiv|fdiv|urem|srem|frem|shl|lshr|ashr|and|or|xor|icmp|fcmp|phi|call|trunc|zext|sext|fptrunc|fpext|uitofp|sitofp|fptoui|fptosi|inttoptr|ptrtoint|bitcast|addrspacecast|select|va_arg|ret|br|switch|invoke|unwind|unreachable|indirectbr|landingpad|resume|malloc|alloca|free|load|store|getelementptr|extractelement|insertelement|shufflevector|getresult|extractvalue|insertvalue|atomicrmw|cmpxchg|fence|argmemonly|double|distinct)\b/,
                /\b(i\d+)\b/
            ],
            variable: [
                /@[-a-zA-Z$._][\w\-$.]*/,
                /@[0-9]+/,
                /%[-a-zA-Z$._][\w\-$.]*/,
                /%[0-9]+/,
                /#[0-9]+/
            ],
            entity:[
                /![-a-zA-Z$._][\w\-$.]*/,
                /![0-9]+/
            ],
            number:[
                /0[xX][a-fA-F0-9]+/,
                /-?\d+(?:[.]\d+)?(?:[eE][-+]?\d+(?:[.]\d+)?)?/
            ],
        };
        Prism.languages.antlr={
                    comment:[
                        {
                            pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,
                            lookbehind: true
                        },
                        {
                            pattern:/(^|[^\\:])\/\/.*/,
                            lookbehind: true
                        }
                    ],
                    keyword:/\b(grammar|fragment)\b/,
                    string:{
                        pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,
                        greedy:!0
                    },
                    entity:{
                        pattern:/{(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*}/,
                        greedy:!0
                    },
                    symbol:[
                        /([A-Z][\w\-$.]*)/,
                        /![0-9]+/
                    ],
                    variable:/([-a-zA-Z$._][\w\-$.]*)/,
                    number:[
                        /0[xX][a-fA-F0-9]+/,
                        /-?\d+(?:[.]\d+)?(?:[eE][-+]?\d+(?:[.]\d+)?)?/
                    ]
                };
        Prism.languages.kaleidoscope={
                    comment:/^[ \t]*#.*$/m,
                    keyword:/\b(def|extern|if|then|else|for|in|var|unary|binary)\b/,
                    number:[
                        /0[xX][a-fA-F0-9]+/,
                        /-?\d+(?:[.]\d+)?(?:[eE][-+]?\d+(?:[.]\d+)?)?/
                    ]
                };
        //]]>
    </script>
</body>
</html>
